#include "CorutinaCamara.h"
#include "Game.h"
#include "TransicionEaseInOutCubic.h"

CorutinaCamara::CorutinaCamara(float x, float y, float tiempo)
{
	
	destinoX	= -x;
	destinoY	= -y;
	duracionTraslado = tiempo;
	
}
void CorutinaCamara::onStart(){
	g->getCamara()->unlock();
	g->getTransitionManager()->addTransicion(new TransicionEaseInOutCubic(g->getCamara()->x,destinoX,duracionTraslado));
	g->getTransitionManager()->addTransicion(new TransicionEaseInOutCubic(g->getCamara()->y,destinoY,duracionTraslado));
	tiempoInicial = TIEMPO_TRANSCURRIDO; 
	/*
	
	iniciado = true;

	if (!g->getCamara()->isCentrado()){
		g->getCamara()->setCentrado(true);

		destinoX += g->getAnchoPantalla()/2;
		destinoY += g->getAltoPantalla()/2;
	}

	origenX		= g->getCamara()->getX();
	origenY		= g->getCamara()->getY();*/
}
void CorutinaCamara::update(float speedFactor){
	/*
	float tiempoTranscurrido = g->getFPS()->getElapsedTime() - tiempoInicio;
	float unidad = tiempoTranscurrido / duracionTraslado;

	float actualX = (destinoX - origenX)*unidad;
	float actualY = (destinoY - origenY)*unidad;

	g->getCamara()->setX((int)(origenX + actualX));
	g->getCamara()->setY((int)(origenY + actualY));*/

}
bool CorutinaCamara::terminado(){
	if (TIEMPO_TRANSCURRIDO > tiempoInicial + duracionTraslado)
		return true;
	return false;
}

CorutinaCamara::~CorutinaCamara(void)
{
}
